A computer network is a geographically distributed collection of interconnected communication links and segments for transporting data between nodes, such as computers. Many types of network segments are available, with the types ranging from local area networks (LAN) to wide area networks (WAN). For example, the LAN may typically connect personal computers and workstations over dedicated, private communications links, whereas the WAN may connect large numbers of nodes over long-distance communications links, such as common carrier telephone lines. The Internet is an example of a WAN that connects disparate networks throughout the world, providing global communication between nodes on various networks. The nodes typically communicate over the network by exchanging discrete frames or packets of data according to predefined protocols. In this context, a protocol consists of a set of rules defining how the nodes interact with each other.
Computer networks may be further interconnected by an intermediate node or device, such as a switch or router, having a plurality of ports that may be coupled to the networks. To interconnect dispersed computer networks and/or provide Internet connectivity, many organizations rely on the infrastructure and facilities of Internet Service Providers (ISPs). ISPs typically own one or more backbone networks that are configured to provide high-speed connection to the Internet. To interconnect private networks that are geographically diverse, an organization may subscribe to one or more ISPs and couple each of its private networks to the ISP's equipment. Here, the router may be utilized to interconnect a plurality of private networks or subscribers to an IP “backbone” network. Routers typically operate at the network layer of a communications protocol stack, such as the internetwork layer of the Transmission Control Protocol/Internet Protocol (TCP/IP) communications architecture.
Simple networks may be constructed using general-purpose routers interconnected by links owned or leased by ISPs. As networks become more complex with greater numbers of elements, additional structure may be required. In a complex network, structure can be imposed on routers by assigning specific jobs to particular routers. A common approach for ISP networks is to divide assignments among access routers and backbone routers. An access router provides individual subscribers access to the network by way of large numbers of relatively low-speed ports connected to the subscribers. Backbone routers, on the other hand, provide transports to Internet backbones and are configured to provide high forwarding rates on fast interfaces. ISPs may impose further physical structure on their networks by organizing them into points of presence (POP). An ISP network usually consists of a number of POPs, each of which comprises a physical location wherein a set of access and backbone routers is located.
As Internet traffic increases, the demand for access routers to handle increased density and backbone routers to handle greater throughput becomes more important. In this context, increased density denotes a greater number of subscriber ports that can be terminated on a single router. Such requirements can be met most efficiently with platforms designed for specific applications. An example of such a specifically designed platform is an aggregation router. The aggregation router is an access router configured to provide high quality of service and guaranteed bandwidth for both data and voice traffic destined for the Internet. The aggregation router also provides a high degree of security for such traffic. These functions are considered “high-touch” features that necessitate substantial processing of the traffic by the router. More notably, the aggregation router is configured to accommodate increased density by aggregating a large number of leased lines from ISP subscribers onto a few trunk lines coupled to an Internet backbone.
In addition to deployment at a POP, the aggregation router may be deployed in a telephone company central office. The large numbers of subscribers connected to input interface ports of the router are typically small to medium sized businesses that conduct a substantial portion of their operations “on-line”, e.g., over the Internet. Each of these subscribers may connect to the aggregation router over a high reliability link connection that is typically leased from, e.g., a telephone company provider. The subscriber traffic received at the input interfaces is funneled onto at least one trunk interface. That is, the aggregation router essentially functions as a large “fan-in” device wherein a plurality (e.g., thousands) of relatively low-speed subscriber input links is aggregated onto a single, high-speed output trunk to a backbone network of the Internet.
Broadly stated, each input link may comprise a T1 or T3 connection, whereas the output trunk interface connection may comprise an OC-12 connection. A T1 connection has a data rate of 1.5 megabits per seconds (Mbps) and there are preferably 28 T1s to each T3 connection; a T3 connection thus has an effective data rate of approximately 42 Mbps. On the other hand, the effective data rate of an OC-12 trunk interface connection is typically 622 Mbps. As noted, the aggregation router receives a plurality of subscriber inputs (e.g., 1000 T1 lines) and aggregates them onto a single output trunk (e.g., an OC-12 link). However, not all T1 links are constantly in use and, through the use of statistical multiplexing, the number of input subscriber lines that can be disposed over a single output trunk at one time can be determined. For example, although the effective data input rate of 1000 T1 lines is greater than 1 gigabit per second (Gbps), the subset of T1 lines that is constantly in use (e.g., approximately 400 T1 lines) may be supported over a single 622 Mbps link (OC-12).
As routers become larger in terms of bandwidth and number of supported interfaces, scalability becomes a main issue. In general, it is desirable to reuse extant software code that has been designed and targeted to a relatively small number of configurable interfaces of the routers for newer product development. However, the advent of large-scale, channelized interfaces creates a number of problems, primarily because of the vast number of channels that can be created as virtual interfaces over a single physical connection. Channelized T3 (CT3) is an example of a line card having such interfaces.
Specifically, each T3 port of a CT3 line card can be configured into 28 T1s and each T1 can be configured into 24 DS0 channels, for a maximum 672 interfaces per port, although this number can be limited by the number of channels supported by the router hardware. The aggregation router described herein, with an anticipated 16 CT3 line cards, each with 6 ports, can result in a substantial number of interfaces to be programmed, even with a hardware-based constraint of only 128 channels per port. This results in a possible 12,288 CT3 channel interfaces on a single router chassis. If the hardware constraint is removed, the number of channel interfaces increases to 64,512.
Not only must each interface be programmed for a number of separate operational parameters, but those interfaces at higher levels, (e.g., T1 and T3) also require programming of individual parameters. Thus, in a worst-case scenario, such as system start up on a fully loaded router chassis, a supervisor processor (e.g., a route processor) may send (download) several hundred thousand separate programming directives to its line cards. The results of such substantial download operations may range from unacceptable start up times to system crashes due to resource depletion. As a result, a technique is needed to reduce down the number of messages containing programming instructions that are downloaded to the line cards.
Reducing the number of messages needed to program line cards of a router is not generally a problem associated with previous routers because many of those routers typically do not handle such a large number of diverse interfaces/ports. However, an example of a line card having a large number of interfaces with potentially many different parameter settings is the CT3 line card of the 7200 Series router available from Cisco Systems, Inc. The software code used to program the CT3 line card is proven and may be utilized with the present invention. Yet, the methods used to employ this code when programming line cards (i.e., port adapters) on the 7200 router do not scale for certain routers, such as the aggregation router used with the present invention. This is primarily because the 7200 router supports a smaller number of CT3 interfaces than those supported by the aggregation router described herein.
Specifically, use of the previous programming methods by the aggregation router would result in a substantial number (e.g., tens of thousands) of individual messages being sent over a communications transport medium during various procedures of the router. These procedures include a start-up process and/or programming of a “bare” router using individual command line interpreter commands organized within a script. Use of a script to download commands from the route processor to the line cards of the aggregation router would further result in a substantial amount of information being transported essentially simultaneously over the communications medium.
The aggregation router cannot handle such large amounts of information using existing methods primarily because of the arbitrary number of messages that are down-loaded for each interface. For example, there may be 10–20 different parameters that require programming for each interface; the existing methods specify sending separate commands over the transport medium for each parameter. For an aggregation router having a large-scale interface arrangement (e.g., 12,288–64,512 CT3 channel interfaces), use of the existing methods would adversely impact performance of the router, including possibly “crashing” the route processor. Even in the absence of such an egregious event, processing and transporting of these large amounts of individual messages are expensive in terms of consumption of resources. Therefore, the present invention is directed to a technique that reduces (“scales down”) the number of messages containing programming instructions that are sent to the line cards of a router.